import { assertEquals } from "asserts";

import letterCombinations from "./index.ts";

Deno.test("letter-combinations-of-a-phone-number", () => {
    assertEquals(
        ["23", "", "2", "8885"].map(letterCombinations).map((a) => new Set(a)),
        [
            ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"],
            [],
            ["a", "b", "c"],
            [
                "tttj",
                "tttk",
                "tttl",
                "ttuj",
                "ttuk",
                "ttul",
                "ttvj",
                "ttvk",
                "ttvl",
                "tutj",
                "tutk",
                "tutl",
                "tuuj",
                "tuuk",
                "tuul",
                "tuvj",
                "tuvk",
                "tuvl",
                "tvtj",
                "tvtk",
                "tvtl",
                "tvuj",
                "tvuk",
                "tvul",
                "tvvj",
                "tvvk",
                "tvvl",
                "uttj",
                "uttk",
                "uttl",
                "utuj",
                "utuk",
                "utul",
                "utvj",
                "utvk",
                "utvl",
                "uutj",
                "uutk",
                "uutl",
                "uuuj",
                "uuuk",
                "uuul",
                "uuvj",
                "uuvk",
                "uuvl",
                "uvtj",
                "uvtk",
                "uvtl",
                "uvuj",
                "uvuk",
                "uvul",
                "uvvj",
                "uvvk",
                "uvvl",
                "vttj",
                "vttk",
                "vttl",
                "vtuj",
                "vtuk",
                "vtul",
                "vtvj",
                "vtvk",
                "vtvl",
                "vutj",
                "vutk",
                "vutl",
                "vuuj",
                "vuuk",
                "vuul",
                "vuvj",
                "vuvk",
                "vuvl",
                "vvtj",
                "vvtk",
                "vvtl",
                "vvuj",
                "vvuk",
                "vvul",
                "vvvj",
                "vvvk",
                "vvvl",
            ],
        ].map((a) => new Set(a)),
    );
});
